/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cci;

import cdp.Cliente;
import cdp.Mensagem;
import cdp.Relatorio;
import cgt.AplCompras;
import cgt.AplLogin;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(name = "AdminRelatoriosCtrl", urlPatterns = {"/admin/Relatorios"})
public class CtrlAdminRelatorios extends Ctrl {

    @Override
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        view = "/admin/relatorios.jsp";

        if (view != null) {
            redirecionar(request, response);
            return;
        }
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String evento = request.getParameter("evento");

        if (evento != null) {
            if (evento.equals("vips")) {
                try {
                    AplCompras.getInstance().atualizarVips();
                    mensagem = "Situacao de clientes atualizada com sucesso";
                } catch (Exception e) {
                    mensagem = "Erro ao atualizar estado de clientes";
                }
                url = "/admin/Relatorios";
            } else if (evento.equals("mensagens")) {
                try {
                    List<Mensagem> mensagens = AplCompras.getInstance().buscarMensagens();
                    request.setAttribute("mensagens", mensagens);
                    view = "/admin/relatorios_mensagens.jsp";
                } catch (Exception e) {
                    mensagem = "Erro ao enviar mensagens";
                    url = "/admin/Relatorios";
                }
            } else if (evento.equals("produtos")) {
                try {
                    List relatorio = AplCompras.getInstance().relatorioProdutos();
                    request.setAttribute("relatorio", relatorio);
                    view = "/admin/relatorios_produtos.jsp";
                } catch (Exception e) {
                    mensagem = "Erro em relatorio de produtos";
                    url = "/admin/Relatorios";
                }
            } else if (evento.equals("vendas")) {
                try {
                    Date d1, d2;
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                    if (request.getParameter("d2") != null) {
                        d1 = sdf.parse(request.getParameter("d1"));
                        d2 = sdf.parse(request.getParameter("d2"));
                    } else {
                        d1 = sdf.parse(sdf.format(new Date()));
                        d2 = d1;
                    }
                    List<Relatorio> relatorio = AplCompras.getInstance().relatorioVendas(d1, d2);
                    request.setAttribute("relatorio", relatorio);
                    view = "/admin/relatorios_vendas.jsp";
                } catch (Exception e) {
                    mensagem = "Erro em relatorio de vendas";
                    url = "/admin/Relatorios";
                }
            } else if (evento.equals("clientes")) {
                try {
                    Date d1, d2;
                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                    if (request.getParameter("d2") != null) {
                        d1 = sdf.parse(request.getParameter("d1"));
                        d2 = sdf.parse(request.getParameter("d2"));
                    } else {
                        d1 = sdf.parse(sdf.format(new Date()));
                        d2 = d1;
                    }
                    List<Cliente> relatorio = AplLogin.getInstance().clientesPeriodo(d1, d2);
                    request.setAttribute("relatorio", relatorio);
                    view = "/admin/relatorios_clientes.jsp";
                } catch (Exception e) {
                    mensagem = "Erro em relatorio de clientes";
                    url = "/admin/Relatorios";
                }
            }
        }

        if (view != null) {
            redirecionar(request, response);
            return;
        }
        processRequest(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        String evento = request.getParameter("evento");

        if (evento != null) {
        }

        if (view != null) {
            redirecionar(request, response);
            return;
        }
        processRequest(request, response);
    }
}
